using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using Common.Utilities.Dispatcher;


namespace Workflows.Components.FileManipulation
{
    [Serializable]
    public class CryptionInstruction:InstructionBase
    {
        #region props
        private string _SrcPath;

        public string SrcPath
        {
            get { return _SrcPath; }
            set { _SrcPath = value; }
        }

        private string _TgtPath;

        public string TgtPath
        {
            get { return _TgtPath; }
            set { _TgtPath = value; }
        }

        private string _Password;

        public string Password
        {
            get { return _Password; }
            set { _Password = value; }
        }

        private string _PubKeyFilePath;

        public string PublicKey
        {
            get { return _PubKeyFilePath; }
            set { _PubKeyFilePath = value; }
        }

        private string _PrivateKeyFilePath;

        public string PrivateKey
        {
            get { return _PrivateKeyFilePath; }
            set { _PrivateKeyFilePath = value; }
        }
        #endregion

        public CryptionInstruction():base(Guid.Empty,Guid.Empty)
        {
            this._SrcPath = string.Empty;
            this._TgtPath = string.Empty;
            this._Password = string.Empty;
            this._PubKeyFilePath = string.Empty;
            this._PrivateKeyFilePath = string.Empty;
        }

        public CryptionInstruction(Guid componentID, Guid jobTicketID, string srcPath, string tgtPath, string password, string pubKey, string privKey) : base(componentID, jobTicketID)
        {
            this._SrcPath = srcPath;
            this._TgtPath = tgtPath;
            this._Password = password;
            this._PubKeyFilePath = pubKey;
            this._PrivateKeyFilePath = privKey;
        }

        public override XmlNode Serialize(ref XmlDocument xDoc, ref XmlNode parentNode)
        {
            throw new NotImplementedException();
        }

        public override InstructionBase Instantiate(XmlNode xNode)
        {
            throw new NotImplementedException();
        }
    }
}
